package com.learn.reflect;

import org.junit.Test;

import java.io.*;
import java.util.Properties;

public class ClassLoaderTest {
    @Test
    public void test1() {
        //对于自定义类，使用系统类加载器进行加载
        ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
        System.out.println(classLoader);

        //调用系统类加载器的getParent()获取扩展类加载器
        ClassLoader classLoader1 = classLoader.getParent();
        System.out.println(classLoader1);

        //调用扩展类加载器的getParent()无法获取引导类加载器，引导类加载器主要负责加载java的核心类库。
        ClassLoader classLoader2 = classLoader1.getParent();
        System.out.println(classLoader2);
    }

    @Test
    public void test2() throws IOException {
        Properties pros = new Properties();
        //读取配置文件的方式一:读取文件默认在当前module下。
        //FileInputStream fis = new FileInputStream(new File("application.properties"));
        //pros.load(fis);

        //读取配置文件的方式一:读取文件默认在当前src文件夹下。
        ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("application.properties");
        pros.load(is);

        String name = pros.getProperty("name");
        String password = pros.getProperty("password");

        System.out.println("user:" + name + "\n password:" + password);
    }
}
